package resp

import (
	"likeadmin/core"
	"likeadmin/model/client"
)

// DramaResp 短剧返回信息
type DramaResp struct {
	DramaId       string      `json:"drama_id" structs:"drama_id"`             // 短剧唯一标识(ULID格式)
	Title         string      `json:"title" structs:"title"`                   // 短剧标题
	Description   string      `json:"description" structs:"description"`       // 详细描述
	CoverUrl      string      `json:"cover_url" structs:"cover_url"`           // 封面图URL
	IsCompleted   int         `json:"is_completed" structs:"is_completed"`     // 0连载中 1已完结
	Status        int         `json:"status" structs:"status"`                 // 1可观看 0禁止观看
	TotalEpisodes int         `json:"total_episodes" structs:"total_episodes"` // 总集数
	HeatValue     int         `json:"heat_value" structs:"heat_value"`         // 热度值
	Money         int         `json:"money" structs:"money"`                   // 价格
	Tag           string      `json:"tag" structs:"tag"`                       // 标签
	CreateTime    core.TsTime `json:"create_time" structs:"create_time"`       // 创建时间
	UpdateTime    core.TsTime `json:"update_time" structs:"update_time"`       // 更新时间
}

// DramaSeriesResp 短剧剧集返回信息
type DramaSeriesResp struct {
	SeriesId   string      `json:"series_id" structs:"series_id"`     // 剧集唯一标识
	DramaId    string      `json:"drama_id" structs:"drama_id"`       // 短剧唯一标识
	Title      string      `json:"title" structs:"title"`             // 短剧标题
	VideoUrl   string      `json:"video_url" structs:"video_url"`     // 封面图URL
	IsVip      int         `json:"is_vip" structs:"is_vip"`           // 1需付费 0免费
	Sort       int         `json:"sort" structs:"sort"`               // 序号
	CreateTime core.TsTime `json:"create_time" structs:"create_time"` // 创建时间
	UpdateTime core.TsTime `json:"update_time" structs:"update_time"` // 更新时间
}

// OrdersResp 订单返回信息
type OrdersResp struct {
	ID             uint         `json:"id" structs:"id"`                             //
	Channel        int          `json:"channel" structs:"channel"`                   // 应用渠道: 1=头条, 2=百度, 3=uc, 4=oppo, 5=vivo, 6=快手
	Uid            int          `json:"uid" structs:"uid"`                           // 用户uid
	Type           int          `json:"type" structs:"type"`                         // 充值类型 1=普通充值 2=会员充值，3=充值活动
	OutNo          string       `json:"out_no" structs:"out_no"`                     // 订单号
	MchNo          string       `json:"mch_no" structs:"mch_no"`                     // 商户系统交易单号
	PayType        string       `json:"pay_type" structs:"pay_type"`                 //
	PayWay         string       `json:"pay_way" structs:"pay_way"`                   //
	Buy            int          `json:"buy" structs:"buy"`                           // 币-购买
	Gift           int          `json:"gift" structs:"gift"`                         // 币-赠送
	VipDays        int          `json:"vip_days" structs:"vip_days"`                 // 会员天数
	GearId         int          `json:"gear_id" structs:"gear_id"`                   // 充值档位id
	Aid            int          `json:"aid" structs:"aid"`                           // 充值活动id
	Money          core.OtMoney `json:"money" structs:"money"`                       // 支付金额
	IsPay          int          `json:"is_pay" structs:"is_pay"`                     // 支付状态，0未支付，1已支付
	PayTime        core.TsTime  `json:"pay_time" structs:"pay_time"`                 // 支付时间
	SeriesId       string       `json:"series_id" structs:"series_id"`               // 剧集唯一标识
	DramaId        string       `json:"drama_id" structs:"drama_id"`                 // 短剧唯一标识
	SourceId       string       `json:"source_id" structs:"source_id"`               // 渠道编码
	AccountId      string       `json:"account_id" structs:"account_id"`             // 渠道编码
	SourceIdActive string       `json:"source_id_active" structs:"source_id_active"` // 渠道编码-激活
	UserCreateTime core.TsTime  `json:"user_create_time" structs:"user_create_time"` // 创建时间
	UserActiveTime int          `json:"user_active_time" structs:"user_active_time"` // 创建时间
	Status         int          `json:"status" structs:"status"`                     // 订单状态，0待支付，1已支付，2退款中，3已退款，4退款失败
	Msg            string       `json:"msg" structs:"msg"`                           // 订单备注
	PackageName    string       `json:"package_name" structs:"package_name"`         // 应用标识
	PayFlag        string       `json:"pay_flag" structs:"pay_flag"`                 // 支付渠道标识
	PayIp          string       `json:"pay_ip" structs:"pay_ip"`                     // 下单
	PayUa          string       `json:"pay_ua" structs:"pay_ua"`                     // UA
	CallbackInfoId uint         `json:"callback_info_id" structs:"callback_info_id"`
	ProjectId      string       `json:"project_id" structs:"project_id"`
	ProjectName    string       `json:"project_name" structs:"project_name"`
	PromotionId    string       `json:"promotion_id" structs:"promotion_id"`
	PromotionName  string       `json:"promotion_name" structs:"promotion_name"`
	ReturnTime     int          `json:"return_time" structs:"return_time"`         // 订单退款时间
	ReturnNo       string       `json:"return_no" structs:"return_no"`             // 退款单号
	CallbackStatus uint8        `json:"callback_status" structs:"callback_status"` // 回传状态 0未回传 1已回传
	CallbackLink   interface{}  `json:"callback_link" structs:"callback_link"`     //
	CreateTime     core.TsTime  `json:"create_time" structs:"create_time"`         // 创建时间s
	UpdateTime     core.TsTime  `json:"update_time" structs:"update_time"`         // 更新时间
}

// AccountResp 广告账户信息返回信息
type AccountResp struct {
	AccountId       string       `json:"account_id" structs:"account_id"`               // 主键ID
	Channel         int          `json:"channel" structs:"channel"`                     // 应用渠道: 1=头条, 2=百度, 3=uc, 4=oppo, 5=vivo, 6=快手
	CreaterId       int          `json:"creater_id" structs:"creater_id"`               // 创建者
	UserAccount     string       `json:"user_account" structs:"user_account"`           // user账号名
	ButlerAccount   string       `json:"butler_account" structs:"butler_account"`       // 管家账号名
	AccountNumber   string       `json:"account_number" structs:"account_number"`       // 广告主账号
	AccountTitle    string       `json:"account_title" structs:"account_title"`         // 账号名称
	CompanyName     string       `json:"company_name" form:"company_name"`              // 数据源id
	DataId          string       `json:"data_id" structs:"data_id"`                     // 数据源id
	Status          int          `json:"status" structs:"status"`                       // 账号状态 1正常 0无效
	AccessTokenTime int64        `json:"access_token_time" structs:"access_token_time"` // accessToken有效期
	PackageName     string       `json:"package_name" structs:"package_name"`           // 应用标识 -xx-xx-
	Balance         core.OtMoney `json:"balance" structs:"balance"`                     // 余额
	Cost            core.OtMoney `json:"cost" structs:"cost"`                           // 总消耗
	Recharge        core.OtMoney `json:"recharge" structs:"recharge"`                   // 充值金额
	Users           core.OtMoney `json:"users" structs:"users"`                         // 充值金额
	Akey            string       `json:"akey" structs:"akey"`                           // 百度akey
	HuichuanRate    HuichuanRate `json:"huichuan_rate" structs:"huichuan_rate"`         // 回传策略比例配置
	BearerTokenUrl  string       `json:"bearer_token_url" structs:"bearer_token_url"`   //
	CreateTime      core.TsTime  `json:"create_time" structs:"create_time"`             // 创建时间
	UpdateTime      core.TsTime  `json:"update_time" structs:"update_time"`             // 更新时间
}

type HuichuanRate struct {
	HuichuanRateActivate int `json:"huichuan_rate_activate" structs:"huichuan_rate_activate"`
	HuichuanRatePay      int `json:"huichuan_rate_pay" structs:"huichuan_rate_pay"`
}

// AppConfigsResp 应用配置返回信息
type AppConfigsResp struct {
	ID          int         `json:"id" structs:"id"`                     // 主键
	Title       string      `json:"title" structs:"title"`               // 应用名称
	PackageName string      `json:"package_name" structs:"package_name"` // 应用标识
	AppId       string      `json:"app_id" structs:"app_id"`             // 唯一标识
	AppSecret   string      `json:"app_secret" structs:"app_secret"`     // 小程序密钥
	Version     string      `json:"version" structs:"version"`           // 版本号
	PayFlag     string      `json:"pay_flag" structs:"pay_flag"`         // 支付渠道标识  -xx-xx-
	PayFlags    []string    `json:"pay_flags" structs:"pay_flags"`       // 支付渠道标识  -xx-xx-
	Status      int         `json:"status" structs:"status"`             // 1启用 0禁用
	CreateTime  core.TsTime `json:"create_time" structs:"create_time"`   // 创建时间
	UpdateTime  core.TsTime `json:"update_time" structs:"update_time"`   // 更新时间
}

// PayConfigsResp 支付配置返回信息
type PayConfigsResp struct {
	ID         uint        `json:"id" structs:"id"`                   // 主键ID
	Title      string      `json:"title" structs:"title"`             // 配置标题
	Flag       string      `json:"flag" structs:"flag"`               // 使用标识
	MerNo      string      `json:"mer_no" structs:"mer_no"`           // 商户编号
	MerAccount string      `json:"mer_account" form:"mer_account"`    // 商户账号
	PrivateKey string      `json:"private_key" form:"private_key"`    // 私钥
	PublicKey  string      `json:"public_key" form:"public_key"`      // 公钥
	Status     int8        `json:"status" structs:"status"`           // 状态，0=不启用，1=已启用，2=异常'
	CreateTime core.TsTime `json:"create_time" structs:"create_time"` // 创建时间
	UpdateTime core.TsTime `json:"update_time" structs:"update_time"` // 更新时间
}

// SourceResp 外推返回信息
type SourceResp struct {
	SourceId    string       `json:"source_id" structs:"source_id"`       // 渠道唯一标识(ULID格式)
	Title       string       `json:"title" structs:"title"`               // 配置标题
	GearType    int8         `json:"gear_type" form:"gear_type"`          //
	DramaTitle  string       `json:"drama_title" structs:"drama_title"`   // 配置标题
	Channel     int8         `json:"channel" structs:"channel"`           // 应用渠道: 1=头条, 2=百度, 3=uc, 4=oppo, 5=vivo, 6=快手
	PackageName string       `json:"package_name" structs:"package_name"` // 应用标识 xx
	AccountId   string       `json:"account_id" structs:"account_id"`     // 广告账户id
	Rebate      uint         `json:"rebate" structs:"rebate"`             // 返点系数
	Recharge    core.OtMoney `json:"recharge" structs:"recharge"`         // 充值金额
	SeriesId    string       `json:"series_id" structs:"series_id"`       // 剧集唯一标识
	DramaId     string       `json:"drama_id" structs:"drama_id"`         // 短剧唯一标识
	Pv          uint         `json:"pv" structs:"pv"`                     // pv
	Uv          uint         `json:"uv" structs:"uv"`                     // uv
	ShieldNum   uint         `json:"shield_num" structs:"shield_num"`     // 屏蔽用户数
	Areas       string       `json:"areas" structs:"areas"`               // 屏蔽用户数
	IsAudit     uint8        `json:"is_audit" structs:"is_audit"`         // 是否为审核模式，1是，0否
	CreateTime  core.TsTime  `json:"create_time" structs:"create_time"`   // 创建时间
	UpdateTime  core.TsTime  `json:"update_time" structs:"update_time"`   // 更新时间
}

// SourceAdDeliveryResp
type SourceAdDeliveryResp struct {
	SourceId       string            `json:"source_id" structs:"source_id"`             // 渠道唯一标识(ULID格式)
	Title          string            `json:"title" structs:"title"`                     // 配置标题
	Channel        int8              `json:"channel" structs:"channel"`                 // 应用渠道: 1=头条, 2=百度, 3=uc, 4=oppo, 5=vivo, 6=快手
	PackageName    string            `json:"package_name" structs:"package_name"`       // 应用标识 xx
	Path           string            `json:"path" structs:"path"`                       // 路径参数
	Listening      string            `json:"listening" structs:"listening"`             // 监测链接
	ListeningGoods string            `json:"listening_goods" structs:"listening_goods"` // 监测链接
	LinkUrl        string            `json:"link_url" structs:"link_url"`               // 监测链接
	AppConfig      client.AppConfigs `json:"app_config" structs:"app_config"`           // 应用信息
}

// ClientUserResp 用户信息返回信息
type ClientUserResp struct {
	ID             uint        `json:"id" structs:"id"`                             // 主键
	Sn             string      `json:"sn" structs:"sn"`                             // 用户编码
	Provider       string      `json:"provider" structs:"provider"`                 // 手机设备厂商
	Model          string      `json:"model" structs:"model"`                       // 设备型号
	Sex            int         `json:"sex" structs:"sex"`                           // 用户性别: [1=男, 2=女, 0=未知]
	CoinBuy        int         `json:"coin_buy" structs:"coin_buy"`                 // 币-购买
	CoinGift       int         `json:"coin_gift" structs:"coin_gift"`               // 币-赠送
	UserType       int         `json:"user_type" structs:"user_type"`               // 用户类型: [1=普通用户, 2=vip用户]
	SourceId       string      `json:"source_id" structs:"source_id"`               // 渠道编码
	AccountId      string      `json:"account_id" structs:"account_id"`             // [1=短剧, 2=工具 3=小说]
	SourceIdActive string      `json:"source_id_active" structs:"source_id_active"` // 渠道编码-激活
	ActiveTime     int         `json:"active_time" structs:"active_time"`           // 激活时间
	Channel        int         `json:"channel" structs:"channel"`                   // 注册渠道: [1=微信小程序, 2=微信公众号, 3=手机H5, 4=电脑PC, 5=苹果APP, 6=安卓APP, 7=快应用, 8=抖音小程序]
	PackageName    string      `json:"package_name" structs:"package_name"`         // 应用包名
	RegisterIp     string      `json:"register_ip" structs:"register_ip"`           // 注册IP
	LastLoginIp    string      `json:"last_login_ip" structs:"last_login_ip"`       // 最后登录IP
	CityInfo       string      `json:"city_info" structs:"city_info"`               // 城市信息
	IsJump         uint8       `json:"is_jump" structs:"is_jump"`                   // [1=短剧, 2=工具 3=小说]
	IsDisable      uint8       `json:"is_disable" structs:"is_disable"`             // 是否异常: [0=正常, 1=异常]
	IsBlack        uint8       `json:"is_black" structs:"is_black"`                 //
	LastLoginTime  core.TsTime `json:"last_login_time" structs:"last_login_time"`   // 最后登录时间
	CreateTime     core.TsTime `json:"create_time" structs:"create_time"`           // 创建时间
}

// ReadRecordsListReq 阅读记录列表参数
type ReadRecordsListReq struct {
	Uid            uint        `json:"uid" form:"uid"`                              // 用户uid
	SeriesId       string      `json:"series_id" form:"series_id"`                  // 剧集唯一标识
	SeriesTitle    string      `json:"series_title" form:"series_title"`            // 剧集唯一标识
	DramaId        string      `json:"drama_id" form:"drama_id"`                    // 短剧唯一标识
	DramaTitle     string      `json:"drama_title" form:"drama_title"`              // 短剧唯一标识
	Money          uint        `json:"money" form:"money"`                          // 价格
	LastTime       core.TsTime `json:"last_time" form:"last_time"`                  // 上次阅读时间
	StartTime      core.TsTime `json:"start_time" form:"start_time"`                // 开始阅读时间
	UserCreateTime core.TsTime `json:"user_create_time" structs:"user_create_time"` // 用户注册时间
	CreateTime     core.TsTime `json:"create_time" structs:"create_time"`           // 创建时间
	UpdateTime     core.TsTime `json:"update_time" structs:"update_time"`           // 更新时间
}

// RechargeReportResp 外推充值统计返回信息
type RechargeReportResp struct {
	SourceId      string       `json:"source_id" structs:"source_id"`           // 渠道唯一标识(ULID格式)
	AccountId     string       `json:"account_id" structs:"account_id"`         // 广告账户id
	AccountTitle  string       `json:"account_title" structs:"account_title"`   //
	Year          string       `json:"year" structs:"year"`                     // 月份
	Month         string       `json:"month" structs:"month"`                   // 月份
	Date          string       `json:"date" structs:"date"`                     // 日期
	Cost          core.OtMoney `json:"cost" structs:"cost"`                     // 总消耗
	Recharge      core.OtMoney `json:"recharge" structs:"recharge"`             // 充值金额
	TotalRecharge core.OtMoney `json:"total_recharge" structs:"total_recharge"` // 累计充值金额
	Users         uint         `json:"users" structs:"users"`                   // 充值金额
}

// RechargeGearTypeResp 充值档位返回信息
type RechargeGearTypeResp struct {
	TID    uint   `json:"t_id" structs:"t_id"`       //
	Title  string `json:"title" structs:"title"`     // 标题
	Status uint8  `json:"status" structs:"status"`   // 是否默认 1 默认 0 不默认
	IsShow uint8  `json:"is_show" structs:"is_show"` // 是否可以选择 1 是 0 不能选择
}

// RechargeGearResp 充值档位返回信息
type RechargeGearResp struct {
	ID          uint         `json:"id" structs:"id"`                     //
	TId         int          `json:"t_id" structs:"t_id"`                 // 充值模板编号
	TTitle      string       `json:"t_title" structs:"t_title"`           //
	Type        uint8        `json:"type" structs:"type"`                 // 充值类型 1普通充值 2会员充值
	Title       string       `json:"title" structs:"title"`               // 标题s
	Price       core.OtMoney `json:"price" structs:"price"`               // 充值金额
	Buy         uint         `json:"buy" structs:"buy"`                   // 币-购买
	Gift        uint         `json:"gift" structs:"gift"`                 // 币-赠送
	VipDays     uint         `json:"vip_days" structs:"vip_days"`         // 会员天数
	Sign        uint8        `json:"sign" structs:"sign"`                 // 标签，0无,1热门,2限时，3推荐s
	IsDefault   uint8        `json:"is_default" structs:"is_default"`     // 是否默认选择，1是0否
	Sort        uint         `json:"sort" structs:"sort"`                 // 排序
	Status      uint8        `json:"status" structs:"status"`             // 状态1显示0隐藏
	RechargeNum uint         `json:"recharge_num" structs:"recharge_num"` // 状态1显示0隐藏
}

// GearSignResp 角标信息
type GearSignResp struct {
	Value uint   `json:"value" structs:"value"`
	Label string `json:"label" structs:"label"`
}

// AdDataResp
type AdDataResp struct {
	Value string `json:"value" structs:"value"`
	Label string `json:"label" structs:"label"`
}
